# מודולים יסודיים

`התיעוד הזה תורגם באופן אוטומטי ועשוי להכיל טעויות. אל תהסס לפתוח בקשת משיכה כדי להציע שינויים.`

LlamaIndex.TS מציע מספר מודולים יסודיים, מחולקים למודולים ברמה גבוהה להתחלה מהירה ולמודולים ברמה נמוכה להתאמה אישית של רכיבים מרכזיים כפי שנדרש.

## מודולים ברמה גבוהה

- [**מסמך**](./high_level/documents_and_nodes.md): מסמך מייצג קובץ טקסט, קובץ PDF או חתיכת נתונים רציפה אחרת.

- [**צומת**](./high_level/documents_and_nodes.md): בלוק הנתונים הבסיסי. ברוב המקרים, אלה הם חלקים של המסמך שמחולקים לחלקים ניתנים לניהול שקט וקטנים מספיק כדי להיות מועברים למודל המשובץ ול-LLM.

- [**קורא/טוען**](./high_level/data_loader.md): קורא או טוען הוא משהו שמקבל מסמך בעולם האמיתי ומעביר אותו למחלקת מסמך שיכולה לשמש באינדקס ובשאילתות שלך. אנחנו תומכים כרגע בקבצי טקסט פשוטים וב- PDF עם עוד הרבה יותר לבוא.

- [**אינדקסים**](./high_level/data_index.md): אינדקסים אחסונים את הצמתים ואת השבצים של הצמתים האלה.

- [**מנוע שאילתות**](./high_level/query_engine.md): מנועי שאילתות הם אלה שיוצרים את השאילתה שאתה מזין ומחזירים לך את התוצאה. מנועי השאילתות משלבים בדרך כלל פרומפט מובנה מראש עם צמתים נבחרים מהאינדקס שלך כדי לתת ל-LLM את ההקשר שהוא צריך כדי לענות על השאילתה שלך.

- [**מנוע צ'אט**](./high_level/chat_engine.md): מנוע צ'אט עוזר לך לבנות צ'אטבוט שיתקשר עם האינדקסים שלך.

## מודול ברמה נמוכה

- [**LLM**](./low_level/llm.md): מחלקת ה-LLM היא ממשק מאוחד מעל ספק מודל שפה גדול כמו OpenAI GPT-4, Anthropic Claude או Meta LLaMA. ניתן ליצור תת-מחלקה על מנת ליצור חיבור למודל שפה גדול משלך.

- [**Embedding**](./low_level/embedding.md): הטמעה מיוצגת כוקטור של מספרים עשרוניים. המודל המוגדר כברירת מחדל שלנו הוא text-embedding-ada-002 של OpenAI וכל הטמעה שהוא מייצר מורכבת מ-1,536 מספרים עשרוניים. מודל הטמעה המוכר השני הוא BERT שמשתמש ב-768 מספרים עשרוניים כדי לייצג כל צומת. אנחנו מספקים מספר יעודיות לעבוד עם טמות כולל 3 אפשרויות לחישוב דמיון ומרכול מרבי מרבי.

- [**TextSplitter/NodeParser**](./low_level/node_parser.md): אסטרטגיות חלוקת הטקסט חשובות ביותר ליעילות הכללית של חיפוש הטמעה. כרגע, למרות שיש לנו ערך ברירת מחדל, אין פתרון אחד שמתאים לכולם. בהתאם למסמכים המקוריים, ייתכן ותרצה להשתמש בגדלי חלוקה שונים ואסטרטגיות שונות. כרגע אנחנו תומכים בחלוקה לפי גודל קבוע, חלוקה לפי גודל קבוע עם חלקים מצטלבים, חלוקה לפי משפט וחלוקה לפי פסקה. המחלקה TextSplitter משמשת על ידי המחלקה NodeParser כאשר היא מפצלת מסמכים לצמתים.

- [**Retriever**](./low_level/retriever.md): ה-Retriever הוא המחלקה שבאמת בוחרת את הצמתים לשליפה מהאינדקס. כאן, תוכל לנסות לשלוף יותר או פחות צמתים לכל שאילתה, לשנות את פונקציית הדמיון שלך או ליצור רטריבר משלך לכל מקרה שימוש יחיד ביישום שלך. לדוגמה, תוכל לרצות להכין רטריבר נפרד עבור תוכן קוד מול תוכן טקסט.

- [**ResponseSynthesizer**](./low_level/response_synthesizer.md): ה-ResponseSynthesizer אחראי לקבלת מחרוזת שאילתה ושימוש ברשימת צמתים כדי ליצור תשובה. זה יכול להיות בצורות רבות, כמו לעבור על כל ההקשר ולשפר תשובה, או לבנות עץ של סיכומים ולהחזיר את הסיכום הראשי.

- [**Storage**](./low_level/storage.md): בסופו של דבר, תרצה לאחסן את האינדקסים, הנתונים והוקטורים שלך במקום להריץ מחדש את מודלי הטמעה בכל פעם. IndexStore, DocStore, VectorStore ו-KVStore הם מופעים שמאפשרים לך לעשות זאת. בשילוב, הם מהווים את ה-StorageContext. כרגע, אנחנו מאפשרים לך לשמור את הטמות שלך בקבצים במערכת הקבצים (או במערכת קבצים וירטואלית בזיכרון), אך אנחנו גם מוסיפים פעילות לשילוב עם מסדי נתונים של וקטורים.
